package com.djl.zenithbite.service;

import org.springframework.util.StringUtils;

import javax.servlet.http.HttpSession;
import java.util.Date;

public class EnrollService {
    //在 session 中校验码内容对应的 key 值
    public static final String TRUE_CHECK_CODE="HOME_KAPTCHA_SESSION_KEY";
    //在 session 中校验码创建时间对应的 key 值
    public static final String CREATE_TIME_CHECK="HOME_KAPTCHA_SESSION_DATE";
    //校验码的有效时间 2 分钟
    private static final long CHECK_CODE_TIME=2*60*1000;
 
    /**
     * 检查用户输入的校验码是否正确
     * http://localhost:8080/home/captcha
     * */
    public static boolean inspectCheckCodeService(String codeKey,String dateKey,String checkCode, HttpSession session){
        if(!StringUtils.hasLength(checkCode)){
            return false;
        }
 
        //Kaptcha 插件会将校验码的内容和创建的时间放到 Session 中
        //获取正确的校验码内容
        String tCheckCode=String.valueOf(session.getAttribute(codeKey));
        //获取校验码的创建时间
        Date timeCheckCode=(Date) session.getAttribute(dateKey);
 
        if(checkCode.equals(tCheckCode)){
            //用户输入的校验码正确
            if(timeCheckCode==null||System.currentTimeMillis()-timeCheckCode.getTime()<CHECK_CODE_TIME){
                return true;
            }
            return false;
        }
        //前端传来的校验码错误
        return false;
    }
}